static gpsbabel::XmlStreamWriter* writer;
static short_handle mkshort_handle;
static const char* link_url;
-static char* link_text;
+static char* link_text = NULL;
static const char* input_string = NULL;
static int input_string_len = 0;
link_url = attr[1];
}
break;
- case tt_wpt_link_text:
- link_text = cdatastr.mem;
- break;
case tt_rte:
rte_head = route_head_alloc();
route_add_head(rte_head);
case tt_wpt_link:
//TODO: implement GPX 1.1 case tt_trk_trkseg_trkpt_link:
//TODO: implement GPX 1.1 case tt_rte_rtept_link:
- {
- char* lt = link_text;
- if (lt) {
- lt = xstrdup(lrtrim(link_text));
+ waypt_add_url(wpt_tmp, link_url, link_text);
+ if (link_text) {
+ xfree(link_text);
+ link_text = NULL;
}
-
- waypt_add_url(wpt_tmp, link_url, lt);
- link_text = NULL;
- }
- break;
+ break;
+ case tt_wpt_link_text:
+ if (cdatastrp[0]) {
+ link_text = xstrdup(lrtrim(cdatastrp));
+ } else {
+ link_text = NULL;
+ }
+ break;
case tt_unknown:
end_something_else();
current_tag.truncate(pos);
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<gpx version="1.1" creator="GPSBabel - http://www.gpsbabel.org" xmlns="http://www.topografix.com/GPX/1/1">
+ <metadata>
+ <time>1970-01-01T00:00:00Z</time>
+ <bounds minlat="21.278604576" minlon="-157.810719665" maxlat="21.278604576" maxlon="-157.810719665"/>
+ </metadata>
+ <wpt lat="21.278604576" lon="-157.810719665">
+ <time>2007-03-10T22:41:34Z</time>
+ <name>001</name>
+ <cmt>3348 Martha St</cmt>
+ <desc>3348 Martha St</desc>
+ <link href="www.zero.com"/>
+ <link href="www.one.com">
+ <text>one</text>
+ <type> not me </type>
+ </link>
+ <link href="www.two.com">
+ <text> two dots </text>
+ </link>
+ <link href="www.twoandahalf.com"/>
+ <link href="www.three.com">
+ <text>three dots</text>
+ </link>
+ <link href="www.four.com">
+ <text></text>
+ </link>
+ <sym>Waypoint</sym>
+ <extensions>
+ <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3">
+ <gpxx:DisplayMode>SymbolAndDescription</gpxx:DisplayMode>
+ </gpxx:WaypointExtension>
+ </extensions>
+ </wpt>
+</gpx>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<gpx version="1.1" creator="GPSBabel - http://www.gpsbabel.org" xmlns="http://www.topografix.com/GPX/1/1">
+ <metadata>
+ <time>1970-01-01T00:00:00Z</time>
+ <bounds minlat="21.278604576" minlon="-157.810719665" maxlat="21.278604576" maxlon="-157.810719665"/>
+ </metadata>
+ <wpt lat="21.278604576" lon="-157.810719665">
+ <time>2007-03-10T22:41:34Z</time>
+ <name>001</name>
+ <cmt>3348 Martha St</cmt>
+ <desc>3348 Martha St</desc>
+ <link href="www.zero.com"/>
+ <link href="www.one.com">
+ <text>one</text>
+ </link>
+ <link href="www.two.com">
+ <text>two dots</text>
+ </link>
+ <link href="www.twoandahalf.com"/>
+ <link href="www.three.com">
+ <text>three dots</text>
+ </link>
+ <link href="www.four.com"/>
+ <sym>Waypoint</sym>
+ <extensions>
+ <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3">
+ <gpxx:DisplayMode>SymbolAndDescription</gpxx:DisplayMode>
+ </gpxx:WaypointExtension>
+ </extensions>
+ </wpt>
+</gpx>
gpsbabel -i gpx -f ${REFERENCE}/multiple-links.gpx -o gpx,gpxver=1.1 -F ${TMPDIR}/mlink-1.gpx
compare ${REFERENCE}/multiple-links.gpx ${TMPDIR}/mlink-1.gpx
+# test some more complicated gpx 1.1 linkTypes and a link with an empty text element
+gpsbabel -i gpx -f ${REFERENCE}/multiple-links-2.gpx -o gpx,gpxver=1.1 -F ${TMPDIR}/mlink-2.gpx
+compare ${REFERENCE}/multiple-links-2~gpx.gpx ${TMPDIR}/mlink-2.gpx